# 自定义函数，判断有无重复元素
def judge_repeat(value, list_):
    return value in list_

# 判断输入是否有效
def judge_last(list_value):
    for i in list_value:
        if i == '4' and '5' in list_value and '6' in list_value and '9' in list_value:
            print("被子植物，水生，可食用，结果实 -> 荷花。")
            break
        if i == '7' and '9' in list_value and '11' in list_value:
            print("被子植物，蔷薇科，有刺 -> 玫瑰。")
            break
        if i==list_value[-1]:
            print("无法确定具体植物")
            return
    

# 有果皮，无茎叶，无根，水生，可食用，结果实，有刺，有托叶,被子植物，藻类植物，蔷薇科,玫瑰，荷花
dict_before = {
    '1': '有果皮', '2': '无茎叶', '3': '无根', '4': '水生', '5': '可食用', '6': '结果实', '7': '有刺', '8': '有托叶',
    '9': '被子植物', '10': '藻类植物', '11': '蔷薇科',
    '12': '玫瑰', '13': '荷花'
}

# 打印用户输入提示信息
print('''请按顺序输入对应的数字：
                            ***********************************
                            1.有果皮     9.被子植物      12.玫瑰
                            2.无茎叶     10.藻类植物     13.荷花
                            3.无根       11.蔷薇科
                            4.水生
                            5.可食用
                            6.结果实
                            7.有刺
                            8.有托叶
                            ***********************************
''')

list_value = []
while True:
    value = input('请输入数字（输入0退出）：')
    if value == '0':
        break
    if judge_repeat(value, list_value):
        print('输入重复，请重新输入！')
        continue
    elif value not in dict_before:
        print('输入错误，请重新输入！')
        continue
    else:
        list_value.append(value)

print("前提条件为：")
for i in list_value:
    print(dict_before[i])

# 推理过程
print("推理过程如下：")
for i in list_value:
    if i == '1' :
        if '9' not in list_value:
            list_value.append('9')
        print("有果皮 -> 被子植物。")
        continue
    if i == '2' and '3' in list_value:
        if '10' not in list_value:
            list_value.append('10')
        print("无茎叶，无根 -> 藻类植物。")
        continue
    if i == '8' and '9' in list_value:
        if '11' not in list_value:
            list_value.append('11')
        print("被子植物,有托叶 -> 蔷薇科。")
        continue
    #判断i是否是最后一个元素
    if i == list_value[-1]:
        break
    
judge_last(list_value)